#include <chrono>
#include <thread>
using namespace std::chrono;
int main() {
    //定义一个时间类，表示一个周期为100ms
    const milliseconds cycle_duration(100);  
    //工作时间为50ms
    const milliseconds work_time(50);     
    while (true) {
        //高精度时钟，用于获取当前时间戳
        auto cycle_start = high_resolution_clock::now();
        //设置工作的截止时间
        auto work_end = cycle_start + work_time;
        // 工作阶段，工作50ms，也就是周期的一半
        volatile int dummy = 0;
        while (high_resolution_clock::now() < work_end) {
            ++dummy; // 防止编译器优化空循环
        }
        // 休眠阶段，直到这个周期结束
        std::this_thread::sleep_until(cycle_start + cycle_duration);
    }
    return 0;
} 
